The first 1,000 people to use this link will get a 1 month free trial of Skillshare: https://skl.sh/thelinuxexperiment11211 Get your Linux desktop or laptop here: https://slimbook.es/en/ 👏 SUPPORT THE CHANNEL: Get access to an exclusive weekly podcast, vote on the next topics I cover, and get your name in the credits: YOUTUBE: https://www.youtube.com/channel/UC5UAwBUum7CPN5buc-_N1Fw/join Patreon: https://www.patreon.com/thelinuxexperiment Or, you can donate whatever you want: https://paypal.me/thelinuxexp?locale.x=fr_FR 🏆 FOLLOW ME ELSEWHERE: I also do a Gaming Podcast: https://www.youtube.com/channel/UCbRPZ11S1quJ4ESoj42A3ug Join us on our new Discord server: https://discord.gg/xK7ukavWmQ Twitter : http://twitter.com/thelinuxEXP My Gaming on Linux Channel: https://www.youtube.com/channel/UCaw_Lz7oifDb-PZCAcZ07kw Follow me on ODYSEE: https://odysee.com/@TheLinuxExperiment:e Or join ODYSEE: https://odysee.com/$/invite/@TheLinuxExperiment:e 📷 GEAR I USE: Sony Alpha A6600 Mirrorless Camera: https://amzn.to/30zKyn7 Sigma 56mm Fixed Prime Lens: https://amzn.to/3aRvK5l Logitech MX Master 3 Mouse: https://amzn.to/3BVI0Od Bluetooth Space Grey Mac Keyboard: https://amzn.to/3jcJETZ Logitech Brio 4K Webcam: https://amzn.to/3jgeTh9 LG Curved Ultrawide Monitor: https://amzn.to/3pcTVDH Logitech White Speakers: https://amzn.to/3n6wSb0 Xbox Controller: https://amzn.to/3BWmIA3 *Amazon Links are affiliate codes and generate small commissions to support the channel* 00:00 Intro 00:42 Sponsor: Skillshare 01:47 What is a platform? 02:57 Linux isn't a platform 05:45 Linux has multiple platforms 07:47 Why do we need app platforms? 11:13 Parting Thoughts But what's a platform, exactly? Basically, I'm talking about an application platform. The best example that most people will be familiar with, will be in the smartphone world, with the iOS platform and the Android platform. Problem is, there is NO Linux platform, and there has never been one. That's simply because there is no "one Linux operating system". You have what we call Linux distributions, which can be very different from each other, not including the same systems, desktop environments, packages or libraries. So application developers can't really develop an app for the Linux platform. They can develop an application that runs on Linux based operating systems, and makes use of some Linux features and libraries, but they have to make A LOT OF choices along the way. Do they want to have a dependency on systemD, do they want to use GTK or Qt, or something else as the toolkit? Do they want to follow human interface guidelines for a desktop that uses this library? And once the app is done, they have to decide on the packaging format: do they want to try and get included in Debian's repos? In Fedora's? In Ubuntu's? Do you want to use AppImage packaging to ensure anyone can run your app? Do you want to have a flatpak version, or a snap one? Linux, instead, doesn't have a single, unified platform. It has multiple ones. What we have on Linux, is parts of platforms that developers can choose. And they already do so. The best example, which I've already talked about, is elementary OS. These guys have the operating system, the development tools, with a specific language, Vala, a graphical library, GTK, their own HIG and Granite, its associated library, one packaging format, Flatpak, and a way to distribute your app, the AppCenter. But we also have other platforms in the making, and the main one is GNOME. And this is also why there is a lot of discussion currently about GNOME, theming, libadwaita, and all of that other stuff: because these are decisions and developments made to create a GNOME platform. GNOME doesn't want to be a simple desktop environment, that distributions can pick, tweak, arrange as they like, and ship to users. They want to be a platform that developers can target, and to ensure that GNOME can be a platform, they NEED to lock a few things down. But why do we need platforms? Well, think about most people's complaints about using Linux: it's too fragmented, there are no third party applications, no one develops for linux, it's unstable, all that stuff. These complaints are what platforms are trying to address. With well defined platforms, developers can create apps that work well and look and feel the same in the hands of users. They can ensure they're stable. They have an enticing system and an easier, pre-defined path to start developing their application, and so, they are more likely to develop an application, period. In the end, we can't really have it both ways: either we want to attract developers and for that, we need to offer compelling and stable development platforms, and that means limiting some choices, or we prefer to keep our existing model and all the user choice it allows, and that means that developers will still have a hard time developing for "Linux" as a whole, because there is no clear path to do so.